Шаг 71 - Предоставление информации о местоположении фокуса ввода с клавиатуры

Ваше приложение должно визуально отмечать положение фокуса клавиатуры и уведомлять другие программы о его положении с помощью Microsoft Active Accessibility или путем перемещения текстового курсора.

Приложение должно отображать визуальный индикатор фокуса все время, пока его окно является активным, чтобы пользователь мог предугадать эффект нажатия клавиш. Предоставление информации о положении курсора другим программам позволяет использовать панорамное программное обеспечение, поддерживаемое многими адаптерами и средствами поддержки специальных возможностей, такими как Экранная лупа, поставляемая с Windows 98 and Windows 2000.

Если использование Microsoft Active Accessibility не представляется возможным, приложение может отображать положение фокуса перемещением текстового курсора. Обычно текстовый курсор представляет собой мигающую вертикальную черту, которую пользователь видит при вводе текста, но его можно поместить в любую точку экрана, изменять его форму и размер и даже сделать невидимым. Если он невидимый, его можно перемещать для указания положения фокуса для других приложений, не изменяя содержания экрана.

Для создания невидимого курсора вызовите функцию CreateCaret, чтобы задать размер и форму курсора, и функцию SetCaretPos, чтобы переместить его в место отображения индикатора фокуса (выделенная ячейка, пиктограмма, кнопка и т.д.). Курсор будет оставаться невидимым до тех пор, пока Вы явно не сделаете его видимым.

Каждый раз, когда фокус перемещается к новому объекту, имеющему другие размеры, приложение должно вызвать функцию DestroyCaret, а затем функцию CreateCaret для указания размера нового объекта. Курсор должен закрывать прямоугольник, окружающий элемент на экране, чтобы средства увеличения экрана предоставляли возможность пользователю увеличивать различные части области ввода.

Приложение должно отображать индикаторы фокуса ввода и выделения только в активном окне. Если окно неактивно, приложение должно удалить визуальный индикатор и вызвать функцию DestroyCaret.

Исключение: Приложения и функции, являющиеся исключениями из требования доступа с клавиатуры, как описано выше в данном разделе, также являются исключениями из требования отображения положения фокуса клавиатурного ввода. Однако рекомендуется отображать положение фокуса клавиатурного ввода для любой функции, обеспечивающей доступ с клавиатуры.

Hosted by uCoz